#ifndef _LCD_TFT_h_
#define _LCD_TFT_h_
//#include "board.h"
#include "zf_common_headfile.h"
#include "zf_driver_gpio.h"
#include "core_cm3.h"
#include "types.h"
#define line_number 10
#define char_per_line 15
// typedef last_line_number 8
using namespace std;

class LCD_TFT
{
private:
    static u8 last_line_number;
    static char toprintf[line_number][char_per_line];

public:
    static u8 init(void);
    static void clear_buffer(void);
    static void add_text(const char text[], bool is_refresh = 0);
    static void remove_text(u8 location, bool is_refresh = 0);
    static void replace_text(u8 location, const char text[], bool is_refresh = 0);
    static void replace_int(u8 location, int value, int place = 7, bool is_refresh = 0);
    static void replace_float(u8 location, double value, u8 integer_num = 3, u8 point_num = 3, bool is_refresh = 0);
    static void show_text_refresh_all(void);
    static void show_text_refresh(u8 location);
    //    static void show_text_refresh(u8 location, char text[]);
    static void show_start_init_interface(void);
    static void show_menu_interface(void);
    static void show_start_init_finished(void);
};
#endif